// 闭包 ： 函数作用域
// 好处 ： 解决变量名称冲突
// 缺点 ： 代码无法进行复用
var ModuleM = (function () {
  // 通过模块化解决代码无法复用 : 创建一个对象，将需要引用的变量放入obj对象中，最后将该对象导出
  var obj = {};

  // 小明的js
  var name = "小明";
  var age = 22;

  function sum(num1, num2) {
    return num1 + num2;
  }

  var flag = true;

  if(flag) {
    console.log(sum(1, 2));
  }

  obj.flag = flag;
  obj.sum = sum;

  return obj;

})()

// CommonJs的导入与导出语法

// 导出
/*
module.exports = {

}
 */

// 导入
/*
var obj = require('xxx.js')
var xxx = obj.xxx
 */